package com.zz.inventory.mapper;

import java.util.List;
import java.util.Map;

import com.zz.inventory.domain.Labs;
import org.apache.ibatis.annotations.Param;

/**
 * 机房信息Mapper接口
 * 
 * @author ruoyi
 * @date 2025-07-01
 */
public interface LabsMapper 
{
    /**
     * 查询机房信息
     * 
     * @param labId 机房信息主键
     * @return 机房信息
     */
    public Labs selectLabsByLabId(Long labId);

    /**
     * 查询机房信息列表
     * 
     * @param labs 机房信息
     * @return 机房信息集合
     */
    public List<Labs> selectLabsList(Labs labs);

    /**
     * 新增机房信息
     * 
     * @param labs 机房信息
     * @return 结果
     */
    public int insertLabs(Labs labs);

    /**
     * 修改机房信息
     * 
     * @param labs 机房信息
     * @return 结果
     */
    public int updateLabs(Labs labs);

    /**
     * 删除机房信息
     *
     * @param labId 机房信息主键
     * @return 结果
     */
    public int deleteLabsByLabId(Long labId);

    /**
     * 批量删除机房信息
     *
     * @param labIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteLabsByLabIds(Long[] labIds);

    int countRelatedExams(Long labId);
    List<Map<String, Object>> countRelatedExamsBatch(List<Long> labIds);
    // 新增：检查机房是否被学校使用（通过 school_id 关联）
    int countSchoolUsingLab(@Param("schoolId") Long schoolId);
}
